import router from '@/router/index'
import { getToken } from '@/utils/cookie'
import { hidePageLoading, showMessage, showPageLoading } from '@/composables/util'

// 全局路由前置守卫
router.beforeEach((to, from, next) => {
  // 展示页面加载Loading
  showPageLoading()
  // 若用户想访问后台(以/admin)为前缀的路由 若未登陆,则强制跳转到登陆页
  let token = getToken()
  if (!token && to.path.startsWith('/admin')) {
    showMessage('请先登录', 'error')
    next({ path: '/login' })
  } else if (token && to.path === '/login') {
    // 若用户已经登陆,且重复访问登录页
    showMessage('请勿重复登录', 'waring')
    // 跳转后台首页
    next({ path: '/admin/index' })
  } else {
    next()
  }
})

// 全局路由后置守卫
router.afterEach((to, from) => {
  // 动态设置页面title
  let title = (to.meta.title ? to.meta.title : '') + ' - Weblog'
  document.title = title

  // 隐藏页面加载Loading
  hidePageLoading()
})
